package net.gxf.common.etf;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 
 * @author: maybe
 * 
 */
public class ETF {
	private String Fundid1 = "510051";// 一级市场代码
	private String Fundid2 = "510051";// 二级市场代码
	private int CreationRedemptionUnit = 1000000;// 最小申购、赎回单位(单位:份)
	private float MaxCashRatio = 0.50000f;// 现金替代比例上限
	// private byte Publish = 1;
	// private byte CreationRedemption = 1;
	private int Recordnum = 50;
	private float EstimateCashComponent = 35385.11f;// 今天最小申购、赎回单位的预估现金部分(单位:元)
	// private int TradingDay = 20121018;// 交易日
	// private int PreTradingDay = 20121017;
	private float CashComponent = 38152.11f;// 昨日最小申购、赎回单位的现金余额(单位:元)
	private float NAVperCU = 1656850.11f;// 最小申购、赎回单位净值(单位:元)
	private float NAV = 1.657f;// 基金份额净值(单位:元)

	private Map<String, StockETF> stockListMap = new HashMap<String, StockETF>();

	/**
	 * 
	 * @return 一级市场代码
	 */
	public String getFundid1() {
		return Fundid1;
	}

	/**
	 * 一级市场代码
	 * 
	 * @param fundid1
	 */
	public void setFundid1(String fundid1) {
		Fundid1 = fundid1;
	}

	/**
	 * 
	 * @return 二级市场代码
	 */
	public String getFundid2() {
		return Fundid2;
	}

	/**
	 * 
	 * @param fundid2
	 *            二级市场代码
	 */
	public void setFundid2(String fundid2) {
		Fundid2 = fundid2;
	}

	/**
	 * 
	 * @return 最小申购、赎回单位(单位:份)
	 */
	public int getCreationRedemptionUnit() {
		return CreationRedemptionUnit;
	}

	/**
	 * 最小申购、赎回单位(单位:份)
	 * 
	 * @param creationRedemptionUnit
	 */
	public void setCreationRedemptionUnit(int creationRedemptionUnit) {
		CreationRedemptionUnit = creationRedemptionUnit;
	}

	/**
	 * 
	 * @return 现金替代比例上限
	 */
	public float getMaxCashRatio() {
		return MaxCashRatio;
	}

	/**
	 * 现金替代比例上限
	 * 
	 * @param maxCashRatio
	 */
	public void setMaxCashRatio(float maxCashRatio) {
		MaxCashRatio = maxCashRatio;
	}

	/**
	 * 
	 * @return 记录数量
	 */
	public int getRecordnum() {
		return Recordnum;
	}

	/**
	 * 设置记录数量
	 * 
	 * @param recordnum
	 */
	public void setRecordnum(int recordnum) {
		Recordnum = recordnum;
	}

	/**
	 * 
	 * @return 今天最小申购、赎回单位的预估现金部分(单位:元)
	 */
	public float getEstimateCashComponent() {
		return EstimateCashComponent;
	}

	/**
	 * 今天最小申购、赎回单位的预估现金部分(单位:元)
	 * 
	 * @param estimateCashComponent
	 */
	public void setEstimateCashComponent(float estimateCashComponent) {
		EstimateCashComponent = estimateCashComponent;
	}

	/**
	 * 
	 * @return 昨日最小申购、赎回单位的现金余额(单位:元)
	 */
	public float getCashComponent() {
		return CashComponent;
	}

	/**
	 * 昨日最小申购、赎回单位的现金余额(单位:元)
	 * 
	 * @param cashComponent
	 */
	public void setCashComponent(float cashComponent) {
		CashComponent = cashComponent;
	}

	/**
	 * 
	 * @return 最小申购、赎回单位净值(单位:元)
	 */
	public float getNAVperCU() {
		return NAVperCU;
	}

	/**
	 * 最小申购、赎回单位净值(单位:元)
	 * 
	 * @param nAVperCU
	 */
	public void setNAVperCU(float nAVperCU) {
		NAVperCU = nAVperCU;
	}

	/**
	 * 
	 * @return 基金份额净值(单位:元)
	 */
	public float getNAV() {
		return NAV;
	}

	/**
	 * 设置基金份额净值(单位:元)
	 * 
	 * @param nAV
	 */
	public void setNAV(float nAV) {
		NAV = nAV;
	}

	public void addStock(StockETF stock) {
		this.stockListMap.put(stock.getCode(), stock);
	}

	public StockETF getStock(StockETF stock) {
		return stockListMap.get(stock.getCode());
	}

	public List<StockETF> getStockList() {
		List<StockETF> list = new ArrayList<StockETF>();
		list.addAll(stockListMap.values());
		return list;
	}

	/** 返回ETF中成分股票的Map，key—code ， value—StockETF */
	public Map<String, StockETF> getETFMap() {
		return stockListMap;
	}

}
